import { modifyTable } from '../migration-helper';
const table = 'osc_test';
const forceKnex = false;

exports.up = function(knex) {
  // 1. 对同一个表的变更，尽量合并成逗号分隔的一条语句，这里为了演示分开写了
  // 2. 使用modifyTable执行的表变更语句没有事务保证，分别是在不同的连接中执行的，如果执行到一半儿失败了，需要手动干预
  // 3. 字段改名或该类型有风险，需要显示指定 { forceNoCheck: true }，并在开发环境或stage环境检查字段可以正常转换
  return modifyTable(knex, table, 'ADD COLUMN f_id int default 0, ADD COLUMN f_id_2 int', {forceKnex})
  .then(() => modifyTable(knex, table, 'CHANGE COLUMN f_id_2 f_id_ch int NOT NULL DEFAULT 0', { forceNoCheck: true ,forceKnex}))
  .then(() => modifyTable(knex, table, 'ADD KEY idx_f_id(f_id, f_id_ch)', {forceKnex}));
};

exports.down = function(knex) {
  return modifyTable(knex, table, 'DROP KEY idx_f_id')
  .then(() => modifyTable(knex, table, 'DROP COLUMN f_id, DROP COLUMN f_id_ch', {forceKnex}));
};